/**
 * Created by forcht on 2018/5/17.
 */
public class Solution {
    public int divide(int dividend, int divisor) {
        int count=0;
        if (dividend==0)return 0;
        long n=Math.abs((long) dividend);
        long m=Math.abs((long) divisor);
        while (n>=m){
            int k=1;
            long a=m;
            while (n>=a+a){
                a+=a;
                k+=k;
            }
            count+=k;
            n-=a;
        }
        return (dividend>>31^divisor>>31)==0?count:-count;
    }
//    public int divide2(int dividend, int divisor) {
//        if(divisor==0)return 0;
//        if(dividend>0&&divisor>0){
//            int count=0;
//            while (dividend>=divisor){
//                dividend=minus(dividend,divisor);
//                count++;
//            }
//            return count;
//        }
//        else if(dividend>0&&divisor<0){
//            divisor=add(~divisor,1);
//            return add(~divide2(dividend,divisor),1);
//        }
//        else if (dividend<0&&divisor>0){
//            dividend=add(~dividend,1);
//            return add(~divide2(dividend,divisor),1);
//        }
//        else if (dividend<0&&divisor<0){
//            divisor=add(~divisor,1);
//            dividend=add(~dividend,1);
//            return divide2(dividend,divisor);
//        }
//        return 0;
//    }
//    //加法
//    public int add(int a,int b){
//        int c=(a&b)<<1;
//        a=a^b;
//        b=c;
//        while (c!=0){
//            c=(a&b)<<1;
//            a=a^b;
//            b=c;
//        }
//        return a;
//    }
//    //减法
//    public int minus(int a,int b){
//        b=add(~b,1);
//        return add(a,b);
//    }
//    public int multi(int a,int b){
//        int sum=a;
//        for(int i=0;i<b-1;i++){
//            sum=add(sum,a);
//        }
//        return sum;
//    }

    public static void main(String[] args) {
        Solution solution = new Solution();
        System.out.println(solution.divide(-10,2));
//        System.out.println(solution.divide2(8,-3));
//        System.out.println(solution.add(154,-100));
//        System.out.println(solution.minus(254,120));
//        System.out.println(solution.multi(7,31));
    }
}
